package com.zhima.enums;

/**
 * @author : 芝麻
 * @date : 2023-09-07 08:45
 **/
public enum Judge0ConfigurationParamEnums {
    /**
     * CPU时间限制
     */
    CPU_TIME_LIMIT("cpu_time_limit"),
    /**
     * CPU额外时间限制，即在cou_time_limit后，仍可以运行cpu_extra_time时间
     */
    CPU_EXTRA_TIME("cpu_extra_time"),
    /**
     * 一般wall_time_limit>=cpu_time_limit
     */
    WALL_TIME_LIMIT("wall_time_limit"),
    /**
     * 内存限制
     */
    MEMORY_LIMIT("memory_limit"),
    /**
     * 栈限制
     */
    STACK_LIMIT("stack_limit"),
    /**
     * 最多可以创建多少个线程或者进程
     */
    MAX_PROCESSES_AND_OR_THREADS("max_processes_and_or_threads"),
    /**
     * 开启每个线程都限制运行时间
     */
    ENABLE_PER_PROCESS_AND_THREAD_TIME_LIMIT("enable_per_process_and_thread_time_limit"),
    /**
     * 开启每个线程都限制运行内存
     */
    ENABLE_PER_PROCESS_AND_THREAD_MEMORY_LIMIT("enable_per_process_and_thread_memory_limit"),
    /**
     * 最大源码大小
     */
    MAX_FILE_SIZE("max_file_size"),
    /**
     * 是否将错误信息重定向到标准输出
     */
    REDIRECT_STDERR_TO_STDOUT("redirect_stderr_to_stdout"),
    /**
     * 是否可以连接网络
     */
    ENABLE_NETWORK("enable_network"),
    /**
     * 最大限度利用时间和空间跑number_of_runs次用户程序
     */
    NUMBER_OF_RUNS("number_of_runs"),
    ;
    private final String paramName;

    Judge0ConfigurationParamEnums(String paramName) {
        this.paramName = paramName;
    }

    public String getParamName() {
        return paramName;
    }
}
